Add back a private api to list controllers
authorMatthias Clasen <mclasen@redhat.com>
Fri, 16 May 2014 17:14:13 +0000 (13:14 -0400)
committerCarlos Garnacho <carlosg@gnome.org>
Fri, 23 May 2014 17:54:32 +0000 (19:54 +0200)
This will let us show them in the inspector.

gtk/gtkwidget.c
gtk/gtkwidgetprivate.h

index 015184bf83c49d00b048740aea2b516241d4bc30..8793c6bb4f5503541511a3c28365bc4e31303939 100644 (file)
@@ -16889,3 +16889,25 @@ _gtk_widget_remove_controller (GtkWidget          *widget,
   g_object_unref (data->controller);
   data->controller = NULL;
 }
+
+GList *
+_gtk_widget_list_controllers (GtkWidget           *widget,
+                              GtkPropagationPhase  phase)
+{
+  EventControllerData *data;
+  GtkWidgetPrivate *priv;
+  GList *l, *retval = NULL;
+
+  g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
+
+  priv = widget->priv;
+
+  for (l = priv->event_controllers; l; l = l->next)
+    {
+      data = l->data;
+      if (data->phase == phase && data->controller != NULL)
+        retval = g_list_prepend (retval, data->controller);
+    }
+
+  return retval;
+}
index 37081462829b3363d759ae0f3df70263284ff1a6..8ae53752a008b15042873ca06432c2c6e1734ba6 100644 (file)
@@ -157,6 +157,8 @@ void              _gtk_widget_add_controller               (GtkWidget
                                                             GtkPropagationPhase  phase);
 void              _gtk_widget_remove_controller            (GtkWidget           *widget,
                                                             GtkEventController  *controller);
+GList *           _gtk_widget_list_controllers             (GtkWidget           *widget,
+                                                            GtkPropagationPhase  phase);
 
 G_END_DECLS